RFC 5234 - Augmented BNF for Syntax Specifications: ABNF
ABNF(Augmented Backus–Naur form)
ABNFを定義したRFC。WikipediaだとEBNFと区別するためにあえてABNFとなっている。
BNFとABNFの違い
ABNFは命名規則、繰り返し、代替、順序独立性、および値の範囲を伴う。
ルール
<>で囲む
<rulename>
B =2進
d = 10進
x = 16進
CR = %d13
CR = %x0D
CRLF = %d13.10
rulename = "abc"
will match "abc", "Abc", "aBc", "abC", "ABc", "aBC", "AbC", and "ABC".
rulename = %d97 %d98 %d99
rulename = %d97.98.99
abcにマッチする
DIGIT = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9"
値の範囲代替
%c##-##
変数繰り返し:*ルール
<a>*<b>element
特定の繰り返し:ルール
<n>*<n>element
[foo bar]
シーケンスグループ
elem (foo / bar) blat
elem foo / bar blat
コアルール
特定の基本的なルールは、等SP、HTAB、CRLF、DIGIT、ALPHA、として、大文字であります
ALPHA = %x41-5A / %x61-7A ; A-Z / a-z
BIT = "0" / "1"
CHAR = %x01-7F ; any 7-bit US-ASCII character, ; excluding NUL
CR = %x0D ; carriage return
CRLF = CR LF ; Internet standard newline
CTL = %x00-1F / %x7F ; controls
DIGIT = %x30-39 ; 0-9
DQUOTE = %x22 ; " (Double Quote)
HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"
HTAB = %x09 ; horizontal tab
LF = %x0A ; linefeed
確認用
Q. RFC 5234
参考
RFC 5234 - Augmented BNF for Syntax Specifications: ABNF 日本語訳
バッカス・ナウア記法 - Wikipedia
ABNF - Wikipedia
関連
EBNF
BNF記法
ABNF
#RFC #文献